package com.taikang.system.entity;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.StringUtils;

import com.taikang.base.entity.BaseBusLongEntity;

/**
 * 省市区基础表
 * 
 * @creator
 * @create-time 2015-10-07 12:01:58
 */
public class SysRegion extends BaseBusLongEntity {
	/**  */
	private static final long serialVersionUID = 1L;

	/** 代码 */
	private String code;
	/** 名称 */
	private String name;
	/** 上级ID */
	private Long parentId;
	/** 级别：1-省份，2-城市，3-区县 */
	private Integer level;
	/** 大区ID */
	private String areaId;
	/** 是否热门区域：0-不是，1-是 */
	private Integer isHot;
	/** 排序参数：越小越靠前 */
	private Integer sort;
	/**城市下面的区*/
	private List<SysRegion> childrenArea = new ArrayList<SysRegion>();
	/**城市下面的商圈*/
	private List<SysRegionCircle> childrenQuan = new ArrayList<SysRegionCircle>();
	
	/**
	 * 获取城市的临时字段
	 */
	private String cityName;
	
	public SysRegion() {
		super();
	}

	/** 代码 */
	public String getCode(){
		return this.code;
	}

	/** 代码 */
	public void setCode(String code){
		this.code = code;
	}
	/** 名称 */
	public String getName(){
		return this.name;
	}

	/** 名称 */
	public void setName(String name){
		this.name = name;
	}
	/** 上级ID */
	public Long getParentId(){
		return this.parentId;
	}

	/** 上级ID */
	public void setParentId(Long parentId){
		this.parentId = parentId;
	}
	/** 级别：1-省份，2-城市，3-区县 */
	public Integer getLevel(){
		return this.level;
	}

	/** 级别：1-省份，2-城市，3-区县 */
	public void setLevel(Integer level){
		this.level = level;
	}
	/** 大区ID */
	public String getAreaId(){
		return this.areaId;
	}

	/** 大区ID */
	public void setAreaId(String areaId){
		this.areaId = areaId;
	}
	/** 是否热门区域：0-不是，1-是 */
	public Integer getIsHot(){
		return this.isHot;
	}

	/** 是否热门区域：0-不是，1-是 */
	public void setIsHot(Integer isHot){
		this.isHot = isHot;
	}
	/** 排序参数：越小越靠前 */
	public Integer getSort(){
		return this.sort;
	}

	/** 排序参数：越小越靠前 */
	public void setSort(Integer sort){
		this.sort = sort;
	}

	public List<SysRegion> getChildrenArea() {
		return childrenArea;
	}

	public void setChildrenArea(List<SysRegion> childrenArea) {
		this.childrenArea = childrenArea;
	}

	public List<SysRegionCircle> getChildrenQuan() {
		return childrenQuan;
	}

	public void setChildrenQuan(List<SysRegionCircle> childrenQuan) {
		this.childrenQuan = childrenQuan;
	}

	public String getCityName() {
		return cityName;
	}

	public void setCityName(String cityName) {
		this.cityName = cityName;
	}
	
	@Override
	public int hashCode() {
		return this.getId().hashCode() + this.getCode().hashCode() + this.getName().hashCode();
	}

	@Override
	public boolean equals(Object obj) {
		if(obj instanceof SysRegion){
			SysRegion compare = (SysRegion)obj;
			if(this.getId().longValue() == compare.getId().longValue() 
					&& StringUtils.equals(this.getCode(), compare.getCode())
					&& StringUtils.equals(this.getName(), compare.getName())){
				return true;
			}
		}
		
		return false;
	}
	
}